<?php

namespace app\model;

use Exception;
use think\Model;

class Dictionary extends Model
{
    /**
     * @throws Exception
     */
    public function onBeforeInsert($model): void
    {
        $oid = request()->header('organization');
        if (!$oid){
            throw new Exception('组织ID不能为空，请创建或是加入一个组织');
        }
        $counts = $this->where('oid', $oid)
            ->where('type',$model['type'])
            ->count();
        if ($counts >= 50){
            throw new Exception('一个组织相同模块最多只能创建20个字典数据源');
        }
        //添加组织ID
        $model['oid'] = $oid;
        //查询最大值，设置value值为最大值+1
        //规避删除后，继续添加值重复
        $maxValue = $this->where('oid', $oid)
            ->where('type', $model['type'])
            ->max('value');
        $model['value'] = $maxValue ? $maxValue + 1 : 0;
    }
}